package com.cn.wanxi.servlet;


import com.cn.wanxi.model.NavModel;
import com.cn.wanxi.model.NewsModel;
import com.cn.wanxi.service.CompanyService;
import com.cn.wanxi.service.NavService;
import com.cn.wanxi.service.NewsService;
import com.cn.wanxi.util.TopFootData;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * 一個頁面对应一个servlet
 * 一个model对应一个dao，对应一个service
 * 页面控制层 所有的数据应该从这里得到，并返回给页面
 * 所以所有的访问应该从这里访问二不是从jsp页面直接访问
 * 既然要访问，肯定需要一个地址
 */
@WebServlet("/home")//访问后台的地址
public class HomeServlet extends HttpServlet {
    /**
     * servlet 的生命周期？
     * doget和dopost的区别？
     */
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        req 请求，页面请求后台的
//        resp  响应  后台响应给前端页面
//        req.getRequestDispatcher("")页面转发,所有数据都需要转发都页面
//       resp.sendRedirect(""); 重定向，只是单纯的返回一个页面
//        所以需要一個容器裝數據，
//        servlet  四大作用域？
//        page
//        request
//        session
//        application
//        req.setAttribute("phone","0288888888");
//        req.setAttribute("logo","../img/logo_g0yv.jpg");//key-value的形式
//        CompanyModel companyModel = new CompanyModel();
//        companyModel.setLogo("../img/logo_g0yv.jpg");
//        companyModel.setPhone("0288888888");
//        所有的数据应该从数据实现层来取
//        CompanyService companyService = new CompanyService();
//        CompanyModel companyModel = companyService.getCompanyModel();
//        req.setAttribute("companyModel", companyService.getCompanyModel());


//        一个容器里面所有的对象都是一致的，数组
//        数组的表达？数组的定义？
//        Java 语言中提供的数组是用来存储固定大小的同类型元素。
//        两种：静态定义  动态定义
//
//        String aa="fadsaf";
//        aa.indexOf('a');
//        NavModel[] navModels = new NavModel[5];//动态定义
//        navModels[2] = new NavModel();
//        NavModel[] navModels1 = {new NavModel(), new NavModel()};//静态定义
//        navModels[0]  =null
//        navModels1[0]=new NavModel();
//        if (navModels[0] == navModels1[0]) {
//
//        }
//        每个页面头部和底部公共数据部分
        TopFootData.setCompanyNavData(req);
//        NavService navService = new NavService();
//        navModels=navService.getNavModels();
//        req.setAttribute("navModels", navService.getNavModels());
//        新聞数据
        NewsService newsService=new NewsService();
//        List<NewsModel> newsModelList=newsService.getNewsModelList();
        req.setAttribute("newsModelList",newsService.getNewsModelList());
        req.getRequestDispatcher("/jsp/home.jsp").forward(req, resp);
//        resp.sendRedirect("/jsp/home.jsp");
    }

}
